package br.fafica.pi1.rightcode.arquivo;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;

import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;

import br.fafica.pi1.rightcode.Filtro.Filtro;

public class CompiladorBKP {

	//private Filtro filtro;
			
	public void Compiler(String caminho){
		System.setProperty("Java.home","C:\\Program Files\\Java\\jdk.1.7.0_40");
		
		JavaCompiler compilador = ToolProvider.getSystemJavaCompiler();
		
		int resultado = compilador.run(null, null, null,caminho);
		
		if(resultado == 0){
			System.out.println("Arquivo: " + caminho);
			System.out.println("Compilação ocorrida com sucesso!");
		}else{
			System.err.println("Arquivo: " + caminho);
			System.err.println("Compilação falhou!");
		}
	}
	
	public void setArquivos(String caminho){
		File arquivo = new File(caminho);
		
		String[] lista = arquivo.list();
				
		for(String arq : lista){
			boolean resultado = (arquivo.getAbsolutePath()+"/"+arq).endsWith(".java");
			
			if(resultado == true){
				Compiler(arquivo.getAbsolutePath()+"/"+arq);	
			}
		}
	}
	
	public void getArquivo(String caminho, Filtro filtro) throws IOException{
		
		Charset utf8 = StandardCharsets.UTF_8;
		File diretorio = new File(caminho);
		
		String linha;
		String[] lista = diretorio.list();
			
		for(String arq : lista){
			boolean resultado = (diretorio.getAbsolutePath()+"/"+arq).endsWith(".java");
			
			if(resultado == true){
				Path path = Paths.get(diretorio.getAbsolutePath()+"/"+arq);
				BufferedReader r = Files.newBufferedReader(path, utf8);
				while((linha = r.readLine())!= null){
					if(linha.contains(filtro.getConteudo())){
						System.out.println("Conteúdo Encontrado!");
					}else{
						System.err.println("Conteúdo não Encontrado!");
					}
				}
			}
		}
	}
	
}
